/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Banco;

import javax.swing.JOptionPane;

/**
 *
 * @author User
 */
public class Banco {

    public static void main(String[] args) {

        // CRIA OS CLIENTES
        Cliente cl1 = new Cliente(1, "Vinícius");
        Cliente cl2 = new Cliente(2, "Teste1");
        Cliente cl3 = new Cliente(3, "Maicon");
        Cliente cl4 = new Cliente(4, "Teste");
        Cliente cl5 = new Cliente(5, "Tasteea");

        /// CRIA AS CONTAS
        Conta c1 = new Conta(001, 1000, cl1);
        Conta c2 = new Conta(002, 2000, cl2);
        Conta c3 = new Conta(003, 3000, cl3);
        Conta c4 = new Conta(004, 4000, cl4);
        Conta c5 = new Conta(005, 5000, cl5);

        // CRIA OS GERENTES
        Gerente g1 = new Gerente(1, "Gerente 1");
        Gerente g2 = new Gerente(2, "Gerente 2");
        Gerente g3 = new Gerente(3, "Gerente 3");
        Gerente g4 = new Gerente(4, "Gerente 4");
        Gerente g5 = new Gerente(5, "Gerente 5");

        // CRIA AS AGÊNCIAS 
        Agencia ag1 = new Agencia(123, "ITAU");
        Agencia ag2 = new Agencia(456, "BANRISUL");
        Agencia ag3 = new Agencia(678, "BANCO DO BRASIL");
        Agencia ag4 = new Agencia(901, "SICREDI");
        Agencia ag5 = new Agencia(1234, "BRADESCO");

        Cliente[] arraydeClientes = new Cliente[5]; // insere o cliente no arrau de cliente
        arraydeClientes[0] = cl1;
        arraydeClientes[1] = cl2;
        arraydeClientes[2] = cl3;
        arraydeClientes[3] = cl4;
        arraydeClientes[4] = cl5;

        Gerente[] arrayDeGerente = new Gerente[2]; // insere o gerente g1 para o array de gerentes
        arrayDeGerente[0] = g1;
        arrayDeGerente[1] = g2;
        arrayDeGerente[0] = g3;
        arrayDeGerente[1] = g4;
        arrayDeGerente[0] = g5;

        Conta[] arraydeContas = new Conta[5]; // insere as contas c1 e c2 para o array de contas
        arraydeContas[0] = c1;
        arraydeContas[1] = c2;
        arraydeContas[2] = c3;
        arraydeContas[3] = c4;
        arraydeContas[4] = c5;

        ag1.setClientes(arraydeClientes);
        ag2.setClientes(arraydeClientes);

        c1.setCliente(arraydeClientes); // cliente c1 recebe o array de clientes

        ag1.setGerente(arrayDeGerente); // agencia ag1 recebe o array de gerentes 

        g1.setConta(arraydeContas); // gerente g1 gerencia as contas c1 e c2 
        g2.setConta(arraydeContas);

        /*  JOptionPane.showMessageDialog(null, "Contas gerenciadas pelo Gerente: " + g1.getNome()
         + "\n" + "ID do gerente: " + g1.getIdGerente()
         + "\n" + "Gerencia a Agência: " + ag1.getNomeAg()
         + "\n" + " Número: " + ag1.getNumeroAg()
         + "\n"
         + "\n" + "Seus Clientes são: \n" + cl1.getNome() + " - Número da Conta: " + c1.getNumero()
         + "\n" + " Ag: " + ag1.getNomeAg()
         + "\n" + "Saldo atual: " + c1.getSaldo()
         + "\n"
         + cl2.getNome() + " - Número da Conta: " + c2.getNumero() + " - saldo atual: " + c2.getSaldo()
         + "\n"
         + "\n"
         + "\n" + " Contas gerenciadas pelo Gerente: " + g2.getNome()
         + "\n" + "ID do gerente: " + g2.getIdGerente()
         + "\n" + "Gerencia a Agência: " + ag2.getNumeroAg()
         + "\n"
         + "\n" + "Seus Clientes são: \n" + cl2.getNome() + " - número da Conta: " + c2.getNumero() + " - saldo atual: " + c2.getSaldo());
         */
        System.out.println("Contas gerenciadas pelo Gerente: " + g1.getNome()
                + "\n" + "ID do gerente: " + g1.getIdGerente()
                + "\n" + "Gerencia a Agência: " + ag1.getNomeAg()
                + "\n" + " Número Ag: " + ag1.getNumeroAg()
                + "\n"
                + "\n" + "Seus Clientes são: \n" + cl1.getNome() + " - Número da Conta: " + c1.getNumero()
                + "\n" + " Ag: " + ag1.getNomeAg()
                + "\n" + "Saldo atual: " + c1.getSaldo()
                + "\n"
                + "\n"
                + "\n" + cl2.getNome() + " - Número da Conta: " + c2.getNumero()
                + "\n" + " Ag: " + ag1.getNomeAg()
                + "\n" + "Saldo atual: " + c2.getSaldo()
                + "\n"
                + "\n" + cl3.getNome() + " - Número da Conta: " + c3.getNumero()
                + "\n" + " Ag: " + ag3.getNomeAg()
                + "\n" + "Saldo atual: " + c3.getSaldo()
                + "\n" + "#######################################################"
                + "\n" + " Contas gerenciadas pelo Gerente: " + g2.getNome()
                + "\n" + "ID do gerente: " + g2.getIdGerente()
                + "\n" + "Gerencia a Agência: " + ag2.getNomeAg()
                + "\n" + "Número Ag: " + ag2.getNumeroAg()
                + "\n" + "Seus Clientes são: \n" + cl2.getNome() + " - número da Conta: " + c2.getNumero() + " - saldo atual: " + c2.getSaldo());

        /*
         Transferencia deposito = new Transferencia();
         deposito.setCodigo(1);
         deposito.setValor(1000);

         Transferencia saca = new Transferencia();
         saca.setCodigo(2);
         saca.setValor(100);

         float deposita = Conta.depositar(c1, 1000);
         c1.setSaldo(deposita);
         saca.setValor(1000);

         float deposita1 = Conta.depositar(c2, 1000);
         c2.setSaldo(deposita);
         saca.setValor(1000);

         float s = Conta.sacar(c2, 100);
         c1.setSaldo(s);

         float s1 = Conta.sacar(c1, 100);
         c1.setSaldo(s1);

         Transferencia[] arraydeTransferencia = new Transferencia[2];
         arraydeTransferencia[0] = deposito;
         arraydeTransferencia[1] = saca;

         c1.setTransf(arraydeTransferencia);
         c2.setTransf(arraydeTransferencia);

         Transferencia.historicos(arraydeTransferencia, c1, cl1);
         Transferencia.historicos(arraydeTransferencia, c2, cl2);
         */
    }

}
